package com.booksystem.campuslibrarymanagementsystem.commen.result;

import com.booksystem.campuslibrarymanagementsystem.entity.BorrowApprovalsTable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

@Data
    public class Result<T> {
        @ApiModelProperty("编码200，400")
        private int code; // 编码200，400
        @ApiModelProperty("提示信息")
        private String message; // 成功，失败
        @ApiModelProperty("数据长度")
        private int total; // 总条数
        @ApiModelProperty("数据")
        private T content; // 数据，使用泛型T

        private Result(int code, String message, int total, T content) {
            this.code = code;
            this.message = message;
            this.total = total;
            this.content = content;

        }

        // 静态工厂方法，创建带有附加信息的失败Result对象
        public static <T> Result<T> fail(String message) {
            return new Result<>(400, message, 0, null);
        }

        // 静态工厂方法，创建成功的Result对象
        public static <T> Result<T> success() {
            return new Result<>(200, "成功", 0, null);
        }

        // 静态工厂方法，创建带有列表数据和总数的成功Result对象
        public static <T> Result<T> success(T content, int total) {
            return new Result<>(200, "成功", total, content);
        }

        // 静态工厂方法，创建带有列表数据和总数的成功Result对象
        public static <T> Result<T> success(T content,String message, int total) {
            return new Result<>(200, message, total, content);
        }

    }

